package com.train.mgr.modules.biz.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.train.common.model.PageResult;
import com.train.mgr.modules.biz.dto.TraineeStuExerciseDTO;
import com.train.mgr.modules.biz.dto.TraineeStudyExerciseSearchVo;
import com.train.mgr.modules.biz.dto.request.TraineeExercisePageDTO;
import com.train.mgr.modules.biz.dto.request.UserExerciseReqDTO;
import com.train.mgr.modules.biz.dto.response.TraineeAllExerciseDTO;
import com.train.mgr.modules.biz.dto.response.TraineeExerciseDTO;
import com.train.mgr.modules.biz.dto.response.TraineeStuRespDTO;
import com.train.mgr.modules.biz.dto.response.UserExerciseRespListDTO;
import com.train.mgr.modules.biz.entity.LessonUserExercise;

import java.util.List;


/**
 * <p>
 * 用户课时练习表 服务类
 * </p>
 *
 * @author cxg
 * @date 2025-09-30
 */
public interface ILessonUserExerciseService extends IService<LessonUserExercise> {

    List<TraineeExerciseDTO>  getCourseHomeExercise(Long courseId, Long lessonId,Integer exerciseType,String orderBy);

    List<LessonUserExercise> findLessonUserExerciseList(Long customerId,Long courseId,Long userId);

    List<LessonUserExercise> getByProjectTypeLessonId(Integer exerciseType, Long lessonId);

    PageResult<UserExerciseRespListDTO> userExerciseList(UserExerciseReqDTO params);

    Page<TraineeAllExerciseDTO> getMyExerciseList(Page<TraineeAllExerciseDTO> page, TraineeExercisePageDTO dto);

    List<TraineeExerciseDTO> getReport(Long exerciseId);

    List<TraineeStudyExerciseSearchVo> getExerciseSearch(Long id);

    TraineeStuRespDTO getExerciseStuCount();

    List<TraineeStuExerciseDTO> getExerciseStuCountList();
}
